<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
<script>

  var buts=document.getElementsByTagName("button");
  console.log(buts.length);
  /*for(var i=0;i<buts.length;i++){
    // buts[i].addEventListener("click",function(){
    //   console.log(i);
    // })
  //闭包可以解决
    (function(i){
      buts[i].addEventListener("click",function(){
        console.log(i);
      })
    })(i)
  }*/
  //es5 var 没有块级作用域，  函数是有作用域的
  //es 6写法  let 有作用域的
  for(let i=0;i<buts.length;i++){
    buts[i].addEventListener("click",function(){
      console.log(i);
    })
  }

// es 5之前的闭包定义且立即调用
  (function(i){
    console.log(i);
  })(10);

</script>
</body>
</html>